package com.tentative.competition.common.model.schedule.resp;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.tentative.competition.common.enums.OperateTypeEnum;
import com.tentative.competition.common.enums.WorksStatusEnum;
import com.tentative.competition.common.model.schedule.vo.FileVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;
import java.util.Optional;

/**
 * @auther: Smile Huang
 * @date: 2023/6/24 16:37
 * @desc:
 * @version: 2.0
 */
@Data
public class ScheduleWorksInfoResp {

    private Long id;

    private Long scheduleId;

    /**
     * 作品名称
     */
    private String worksName;
    /**
     * 作品主图
     */
    private Long worksImgMain;

    /**
     * 承诺书附件ID
     */
    private Long promise;

    /**
     * 作品视频附件ID
     */
    private String worksVideo;

    /**
     * 获奖名次名称-奖项配置ID
     */
    private Long awardConfigId;

    /**
     * 作品主图
     */
    private String worksImgMainUrl;

    /**
     * 承诺书附件
     */
    private String promiseUrl;

    /**
     * 作品视频附件
     */
    private List<FileVo> worksVideoList;

    /**
     * 作品视频附件
     */
    // private String worksVideoName;

    /**
     * 获奖名次名称-奖项
     */
    private String awardConfigName;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @ApiModelProperty("上一个作品ID")
    private Long previousWorksId;

    @ApiModelProperty("上一个作品名称")
    private String previousWorksName;

    @ApiModelProperty("下一个作品id")
    private Long nextWorksId;

    @ApiModelProperty("下一个作品名称")
    private String nextWorksName;

    @ApiModelProperty("作品状态")
    private WorksStatusEnum worksStatus;

    private Integer sort;
    /**
     * 作品编码
     */
    private String worksEncoding;


    /**
     * 是否首页展示
     */
    private Boolean homeShow;

    private Integer homeShowVal;

    public Integer getHomeShowVal() {
        return Optional.ofNullable(this.homeShow).orElse(false) ? 1 : 0;
    }
}
